{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img src=\"https://raw.githubusercontent.com/Qiskit/qiskit-tutorials/master/images/qiskit-heading.png\" alt=\"Note: In order for images to show up in this jupyter notebook you need to select File => Trusted Notebook\" width=\"500 px\" align=\"left\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# _*Quantum algorithm for linear system of equations*_ \n",
    "\n",
    "The latest version of this notebook is available on https://github.com/qiskit/qiskit-tutorial.\n",
    "\n",
    "***\n",
    "### Contributors \n",
    "Shan Jin, Xi He, Xiaokai Hou, Li Sun, Dingding Wen, Shaojun Wu and Xiaoting Wang$^{1}$\n",
    "\n",
    "1. Institute of Fundamental and Frontier Sciences, University of Electronic Science and Technology of China，Chengdu, China，610051\n",
    "***"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Introduction\n",
    "Solving linear equations is a very common problem in the fields of numerical optimization and machine learning. With the rapid expansion of data sets, solving linear equations becomes more and more difficult for classical computer. However, quantum computers can be used for solving linear systems of algebraic equations with exponential speed up compared with classical computers. Therefore, the use of quantum computers to solve the system of linear equations can greatly reduce the computational complexity and time complexity. \n",
    "\n",
    "#### Experiment design\n",
    "<p>We have a Hermitian $N \\times N$ matrix $A$, and a unit vector $\\vec b$, suppose we would like to find $x$ satisfying $A\\vec x = \\vec b$.[[1]](#cite_1) <br />(1)Represent $b$ as a quantum state $|b\\rangle = \\sum_{i=1}^{N} b_i |i\\rangle$.<br />(2) Apply the conditional Hamiltonian evolution $e^{iAt}$ to $|b\\rangle$ for a superposition of different times $t$. With the phase estimation algorithm, we can decompose $|b\\rangle$ in the eigenbasis of $A$ and to find the corresponding eigenvalues $\\lambda_j$. After this stage, the state of the system is close to $\\sum_{j=1}^{N} \\beta_j |u_j\\rangle |\\lambda_j\\rangle$, where $u_j$ is the eigenvector basis of $A$, and $|b\\rangle = \\sum_{j=1}^{N}\\beta_j |u_j\\rangle$. <br />(3)Uncompute the $|\\lambda_j\\rangle$ register and we get a state which is propotional to $\\sum_{j=1}^{N} \\beta_j \\lambda_{j}^{-1}|u_j\\rangle = A^{-1}|b\\rangle = |x\\rangle$.</p>\n",
    "The schematic diagram of quantum K-Means is the following picture.[[2]](#cite_2) And to make our algorithm can be run using qiskit, we design a more detailed circuit to achieve our algorithm in the next section. \n",
    "<img src=\"../images/hhl_1.jpg\" width=\"400 px\">\n",
    "#### Quantum K-Means circuit\n",
    "<img src=\"../images/hhl_2.png\">\n",
    "#### Parameter declaration\n",
    "Here we set the parameters as follwing, the aim is to ensure the precision.[[3]](#cite_3) <br />\n",
    "$r = 4$, $t_0=2\\pi$, $S = \\begin{pmatrix}1 & 0 \\\\ 0 & i\\end{pmatrix}$, $H = \\frac{1}{\\sqrt{2}}\\begin{pmatrix}1 & 1 \\\\ 1 & -1\\end{pmatrix}$, \n",
    "$R_y(\\theta) = \\begin{pmatrix}cos(\\theta/2) & -sin(\\theta/2) \\\\ sin(\\theta/2) & cos(\\theta/2)\\end{pmatrix}$\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Data declaration\n",
    "The aim of this algorithm is to solve the linear system of equations. As a demo, we take a linear equation as $A \\vec x = \\vec b$. In this equition, for example, we define the matrix $A$ as $A = \\begin{pmatrix}2 & -1 \\\\ -1 & 2\\end{pmatrix}$ and $\\vec b$ as $\\vec b=\\begin{pmatrix}0 \\\\ 1\\end{pmatrix}$. After making the $A$ and $\\vec b$ as input, we implement the algorithm to obtain the result vector $\\vec x$."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Quantum algorithm for linear system of equations program"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# import math lib\n",
    "from math import pi\n",
    "\n",
    "# import Qiskit\n",
    "from qiskit import Aer, execute\n",
    "from qiskit import QuantumCircuit, ClassicalRegister, QuantumRegister\n",
    "\n",
    "# import basic plot tools\n",
    "from qiskit.tools.visualization import plot_histogram"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# To use local qasm simulator\n",
    "backend = Aer.get_backend('qasm_simulator')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In this section, we first judge the version of Python and import the packages of qiskit, math to implement the following code. We show our algorithm on the ibm_qasm_simulator, if you need to run it on the real quantum conputer, please remove the \"#\" in frint of \"import Qconfig\" and the set_api() function."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "COMPLETED\n"
     ]
    },
    {
     "data": {
      "image/png": "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S3l5ec4/mxKEiEgzLFmyhKKiIvr06UPHjh0ZP3488+fP36PN/Pnz+frXvw7Aueeey+LFi3F3Dj74YAoKwsKeO3bswMzqf6ampoYPP/yQmpoatm/fTrdu3XL3oSJKECIizbBx40Z69OhR/7qwsJCNGzc22KagoIDOnTuzdetWAF588UWKi4v55Cc/ye23305BQQHdu3fnyiuvpGfPnhx33HF07tyZU089NXcfKqIEISLSDO6+177UO4HG2px44omsXLmSpUuXMn36dHbs2MG7777L/PnzWbduHZs2beKDDz7gvvvua5kPsA9KECIizVBYWMiGDRvqX1dXV+/VHZTapqamhm3btnHkkUfu0WbAgAEccsghrFixgt///vf07t2brl270qFDB84++2yee+65lv8waZQgRPLU/lbWAEyfPp2ioiL69+/PokWL6vfffPPNlJSUUFxczE033ZSLj9HqDR06lDVr1rBu3Tp27dpFeXk5ZWVle7QpKyvjnnvuAeChhx7iC1/4AmbGunXrqKmpAeD1119n9erV9OrVi549e/LCCy+wfft23J3FixczYMCAnH+2gpy/o4i0uLrKmt/97ncUFhYydOhQysrKGDhwYH2b1Mqa8vJyrr76ah544AGqqqooLy9n5cqVbNq0iZNPPpk///nPrFq1irvuuoslS5bQsWNHxo4dyxlnnEHfvn0T/KTJKygo4NZbb2XMmDHU1tYyceJEiouLmTZtGqWlpZSVlTFp0iQuuOACioqKOPLII+srkp555hlmzJhBhw4daNeuHbfddhtdunShS5cunHvuuZxwwgkUFBQwZMgQJk+enPPPZnF9Y21FaWmpV1ZWZuV3VVRU8J3vfIfa2louueQSpkyZssfxnTt3cuGFF7Js2TKOOuooHnjgAXr16gWEq63Zs2fTvn17brnlFsaMGQPAxIkTefTRRzn66KNZsWJFVuJsi3pNeSzR918/44xE3z8Jzz//PNdee2391f/06dMBmDp1an2bMWPGcO211zJixAhqamo49thj2bJlS/3dRl3bunbV1dUsWrSIWbNmAXD99dfTqVMnrrrqqlx+NMkCM1vm7qWNtVMXE82rY0692qqoqOCyyy6jtrYWgIsuuoiKioqcfx6R5lTWNPSzJSUlPP3002zdupXt27ezcOHCPfreJf8oQdC8Oub58+czfvx4OnXq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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "77\n",
      "315\n",
      "0.24444444444444444\n",
      "COMPLETED\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAETCAYAAAAs4pGmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJzt3XucFNWZ//HPwwyQeCMqKMJAgAwQGBTQQXGzm0BQwUvGRFEgGzWKwV3N1biKJktYTRaSzcbLT4zxGqORwSgIUYQYjBqvMKwmcpFARGXAKKLBCwLO+Pz+ODWTpqm5NDNdNdN8368XL6qrTnc/XWI/Xaeec465OyIiItk6pB2AiIi0TUoQIiISSwlCRERiKUGIiEgsJQgREYmlBCEiIrGUIEREJJYShIiIxFKCEBGRWMVpB9ASXbt29T59+qQdhohIu7J8+fI33b1bU+3adYLo06cPVVVVaYchItKumNkrzWmnLiYREYmlBCEiIrGUIEREJJYShIiIxFKCEBGRWEoQIiISSwlCRERiKUGIiEgsJQgREYmlBCEiIrGUIEREJJYShIiIxFKCEBGRWEoQIiISSwlCRERiKUGIiEgsJQhJ1KJFixg4cCClpaXMnDlzt+OvvPIKY8aM4YgjjmDUqFFUV1fXHysqKmLYsGEMGzaMioqK+v2TJ09m6NChHHHEEYwfP5733nsvkc8iUujM3dOOYY+Vl5e7VpRrP2praxkwYAAPP/wwJSUljBgxgtmzZzN48OD6NmeccQannHIK55xzDo888gi33347d955JwD77bdf7Jf/O++8wwEHHADAxRdfzCGHHMLUqVOT+VAi7ZCZLXf38qba6QpCErN06VJKS0vp168fnTp1YuLEicyfP3+XNqtWrWLMmDEAjB49erfjceqSg7vzwQcfYGatH7zIXkgJQhKzceNGevXqVf+4pKSEjRs37tJm6NCh3HfffQDMmzePd999ly1btgCwfft2ysvLGTlyJPfff/8uzzv33HPp3r07L774It/4xjfy/ElE9g5KEJKYuO7M7F/7P/3pT3nssccYPnw4jz32GD179qS4uBiAV199laqqKu6++26+/e1v89e//rX+ebfffjubNm1i0KBBzJkzJ78fRGQvoQQhiSkpKWHDhg31j6urq+nRo8cubXr06MHcuXN57rnn+NGPfgRAly5d6o8B9OvXj1GjRvHcc8/t8tyioiImTJhQfwUiIi2TSIIws9vM7A0zW9HAcTOz68xsnZn92cyOTCIuSdaIESNYu3Yt69evZ+fOnVRWVu5SjQTw5ptv8tFHHwEwY8YMzjvvPADefvttduzYUd/mySefZPDgwbg769atA8IVym9/+1s+/elPJ/ipRApXUlcQvwTGNXL8RKB/9GcK8PMEYpKEFRcXc/311zN27FgGDRrEmWeeSVlZGdOmTWPBggUAPProowwcOJABAwbw+uuv873vfQ+A1atXU15eztChQxk9ejRTp06tTxDnnHMOhx9+OIcffjivvfYa06ZNS/NjihSMxMpczawP8IC7D4k59gvgUXefHT1eA4xy99cae02VuYqI5K69lbn2BDZkPK6O9omISEraSoKIK1yPvbQxsylmVmVmVZs3b85zWCIie6+2kiCqgV4Zj0uATXEN3f0mdy939/Ju3bolEpyIyN6orSSIBcDZUTXTSGBrU/cfREQkv4qTeBMzmw2MArqaWTXwA6AjgLvfCCwETgLWAduAc5OIS0REGpZIgnD3SU0cd+CiJGIREZHmaStdTCIi0sYoQYiISCwlCBERiaUEISIisRK5SS17tz5TH0z1/V+eeXKq7y/SXukKQkREYilBiIhILCUIERGJpQQhIiKxlCBERCSWEoSIiMRSghARkVhKECIiEksJQkREYilBiIhILCUIERGJpQQhIiKxlCBERCSWEoSIiMRSghARkVhKECIiEksJQkREYilBiIhILCUIERGJpQQhIiKxlCBERCSWEoSIiMRSghARkVhKECIiEiuxBGFm48xsjZmtM7OpMcd7m9kfzOw5M/uzmZ2UVGwiIrK7RBKEmRUBs4ATgcHAJDMbnNXs+8A97j4cmAjckERsIiISL6kriKOBde7+krvvBCqBU7PaOHBAtN0F2JRQbCIiEqM4offpCWzIeFwNHJPVZjrwOzP7BrAvcFwyoYmISJykriAsZp9nPZ4E/NLdS4CTgDvNbLf4zGyKmVWZWdXmzZvzEKqIiEByCaIa6JXxuITdu5AmA/cAuPvTwMeArtkv5O43uXu5u5d369YtT+GKiEhSCWIZ0N/M+ppZJ8JN6AVZbV4FxgCY2SBCgtAlgohIShJJEO5eA3wdWAysJlQrrTSzK82sImr2XeBrZvYnYDbw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lYl/NiUIEZEWWLp0KaWlpfTr149OnToxceJE5s+fv0ub+fPnc8455wAwfvx4lixZgruzzz77UFwcFvbcvn07Zlb/nJqaGj744ANqamrYtm0bPXr0SO5DRZQgRERaYOPGjfTq1av+cUlJCRs3bmywTXFxMV26dGHLli0APPvss5SVlXH44Ydz4403UlxcTM+ePbnkkkvo3bs3hx12GF26dOGEE05I7kNFlCBERFrA3Xfbl3kl0FSbY445hpUrV7Js2TJmzJjB9u3befvtt5k/fz7r169n06ZNvP/++9x11135+QCNUIIQEWmBkpISNmzYUP+4urp6t+6gzDY1NTVs3bqVgw46aJc2gwYNYt9992XFihX8/ve/p2/fvnTr1o2OHTty2mmn8dRTT+X/w2RRghApUHtaWQMwY8YMSktLGThwIIsXL67ff+211zJkyBDKysq45pprkvgYbd6IESNYu3Yt69evZ+fOnVRWVlJRUbFLm4qKCu644w4A7r33Xj7/+c9jZqxfv56amhoAXnnlFdasWUOfPn3o3bs3zzzzDNu2bcPdWbJkCYMGDUr8sxUn/o4iknd1lTUPP/wwJSUljBgxgoqKCgYPHlzfJrOyprKykssuu4w5c+awatUqKisrWblyJZs2beK4447jL3/5C6tXr+bmm29m6dKldOrUiXHjxnHyySfTv3//FD9p+oqLi7n++usZO3YstbW1nHfeeZSVlTFt2jTKy8upqKhg8uTJnHXWWZSWlnLQQQfVVyQ98cQTzJw5k44dO9KhQwduuOEGunbtSteuXRk/fjxHHnkkxcXFDB8+nClTpiT+2Syub6y9KC8v96qqqlZ5rUWLFvGtb32L2tpazj//fKZOnbrL8R07dnD22WezfPlyDj74YObMmUOfPn2A8Gvr1ltvpaioiOuuu46xY8c26zX3Fn2mPpjq+7888+RU3z8NTz/9NNOnT6//9T9jxgwALr/88vo2Y8eOZfr06Rx77LHU1NTQvXt3Nm/eXH+1Ude2rl11dTWLFy/mlltuAeCqq66ic+fOXHrppUl+NGkFZrbc3cubaqcuJlpWx5z5a2vRokVceOGF1NbWNus1RfKlJZU1DT13yJAhPP7442zZsoVt27axcOHCXfrepfAoQdCyOub58+czceJEOnfuTN++fSktLWXp0qXNek2RfGlJZU1D+wcNGsRl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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "148\n",
      "629\n",
      "0.23529411764705882\n",
      "COMPLETED\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAETCAYAAAAs4pGmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJzt3Xt8VPWd//HXB1K0oOAF1EKwQIMsl0rQINp2LYoulNpYrVVotSpY3NW2a+0Nahep7S7U7XrpD1zrbbVaiVckqwi6WG2lKoSKVmIRFJSAVUSLWguY8Pn98T1Jh+GEzJCZOZPh/Xw8fHAu35n5zDEznznf8/l+j7k7IiIi6TolHYCIiBQnJQgREYmlBCEiIrGUIEREJJYShIiIxFKCEBGRWEoQIiISSwlCRERiKUGIiEissqQDaI+ePXt6v379kg5DRKRDWb58+Vvu3qutdh06QfTr14+6urqkwxAR6VDM7NVM2qmLSUREYilBiIhILCUIERGJpQQhIiKxlCBERCSWEoSIiMRSghARkVhKECIiEksJQkREYilBiIhILCUIERGJpQQhIiKxlCBERCSWEoSIiMRSghARkVhKECIiEksJQgpq4cKFDBo0iIqKCmbNmrXL/ldffZUxY8Zw5JFHMnr0aBoaGlr2de7cmcrKSiorK6murm7ZvnjxYo466igqKyv5zGc+w5o1awryXkRKnrt32P+OPvpol46jsbHRBwwY4C+//LJv27bNjzzySF+5cuVObc444wy/9dZb3d198eLFfvbZZ7fs69atW+zzDhw40Ovr693dfc6cOX7uuefm5w2IlAigzjP4jtUZhBTM0qVLqaioYMCAAXTp0oUJEyYwf/78ndrU19czZswYAE444YRd9scxM959910AtmzZQu/evXMfvMheSAlCCmbDhg307du3Zb28vJwNGzbs1Gb48OHcd999AMybN4/33nuPzZs3A7B161aqqqo49thjeeCBB1oec9NNNzF+/HjKy8u5/fbbmTp1agHejUjpU4KQgglntjszs53Wf/7zn/PEE08wYsQInnjiCfr06UNZWRkAr732GnV1ddx5551ccsklvPzyywBcffXVLFiwgIaGBs4//3wuvfTS/L8Zkb1AWdIByN6jvLyc9evXt6w3NDTs0h3Uu3dv7r//fgDef/997rvv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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "208\n",
      "907\n",
      "0.22932745314222713\n",
      "COMPLETED\n"
     ]
    },
    {
     "data": {
      "image/png": "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UwLiWHffDuDu24AuzficVUA/M+tjZh2AcUB5/UF33+nuXd29t7v3Bt4CSt29ohmfJSIiOdCUTuqCcJpva+Q1mab8dvf9ZnYHwQJD7YGn3X2tmT0IVLh7+aH+voiIxK8pAfEhB45Sqk177UDfTG/i7gsI1rVO3TelkbYjmlCXiIjkUcaACG/5iIjIESabJ6lFROQIooAQEZFICggREYmkgBARkUgKCBERiaSAEBGRSAoIERGJpIAQEZFICggREYmkgBARkUgKCBERiaSAEBGRSAoIERGJpIAQEZFICggREYmkgBARkUgKCBERiaSAEBGRSAoIERGJpIAQEZFICggREYmkgBARkUgKCBERiaSAEBGRSAoIERGJpIAQEZFICggREYmkgBARkUixBYSZXWZm682syszujTh+p5lVmtkfzWypmZ0eV20iInKwWALCzNoDM4DLgYHAeDMbmNbsHaDE3c8GXgYeiqM2ERGJFtcVxDCgyt03uvs+oAy4KrWBu//a3XeHL98CCmOqTUREIsQVED2AbSmvq8N9jZkILMxrRSIickgFMX2ORezzyIZmfweUABc2cnwSMAmgV69euapPRETSxHUFUQ30THldCLyX3sjMLgYeAErdfW/UG7n7THcvcfeSbt265aVYERGJLyBWAf3MrI+ZdQDGAeWpDczsHOBnBOHwYUx1iYhII2IJCHffD9wBLAbWAS+6+1oze9DMSsNmPwY6Ay+Z2WozK2/k7UREJAZx9UHg7guABWn7pqRsXxxXLSIikpmepBYRkUgKCBERiaSAEBGRSAoIERGJpIAQEZFICggREYmkgBARkUgKCBERiaSAEBGRSAoIERGJpIAQEZFICggREYmkgBARkUgKCBERiaSAEBGRSAoIERGJpIAQEWmCRYsW0b9/f4qKipg2bdpBx/fu3csNN9xAUVER5513Hps3bwZg5cqVDBkyhCFDhlBcXMy8efMAWL9+fcP+IUOGcPzxx/Poo4/G+ZUyim1FORGR1qquro7bb7+dJUuWUFhYyNChQyktLWXgwIENbZ566ilOPPFEqqqqKCsrY/LkybzwwgsMHjyYiooKCgoK2L59O8XFxVx55ZX079+f1atXN7x/jx49GDNmTFJfMZKuIEREMli5ciVFRUX07duXDh06MG7cOObPn39Am/nz53PTTTcBcN1117F06VLcnU6d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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "279\n",
      "1210\n",
      "0.23057851239669422\n",
      "COMPLETED\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAETCAYAAAAs4pGmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJzt3Xl8VfWZx/HPYyKKqLiACwQLNEAhKNgGwXZGQbQiaqzVIrTFBSydqm2n1tatQzu2M1in49KCtVodrVbjBsIoQh0stVoV4lZZSskASsAFo+I2QIPP/PE7SS+XE5JL7j0nuXzfr5cvzvJLznOPcJ9zfqu5OyIiItl2SzsAERFpn5QgREQklhKEiIjEUoIQEZFYShAiIhJLCUJERGIpQYiISCwlCBERiaUEISIisUrTDqAtunXr5r179047DBGRDuW55557y927t1SuQyeI3r17U1NTk3YYIiIdipm90ppyqmISEZFYShAiIhJLCUJERGIpQYiISCwlCBERiaUEISIisZQgREQklhKEiIjEUoIQEZFYShAiIhJLCUJERGIpQYiISCwlCBERiaUEISIisZQgREQklhKEiIjEUoKQRM2bN48BAwZQXl7O1Vdfvd35V155hdGjR3PEEUcwcuRI6urqms6VlJQwdOhQhg4dSlVV1XY/+81vfpO99967oPGL7Eo69Ipy0rFs3bqVCy+8kMcee4yysjKGDRtGVVUVgwYNaipzySWXcPbZZ3POOefw+OOPc/nll3PnnXcC0LlzZ1588cXY311TU8O7776byOcQ2VXoDUISs2jRIsrLy+nbty+dOnVi/PjxzJ49e5syy5YtY/To0QCMGjVqu/Nxtm7dyve+9z2uueaagsQtsqtSgpDErFu3jl69ejXtl5WVsW7dum3KDBkyhAcffBCAWbNm8f7771NfXw/Apk2bqKysZMSIETz00ENNPzN9+nSqqqo49NBDE/gUIrsOVTFJYtx9u2Nmts3+z372My666CJuv/12jjnmGHr27Elpafhr+uqrr9KjRw9WrVrFcccdx+GHH07nzp25//77WbhwYRIfQWSXogQhiSkrK2Pt2rVN+3V1dfTo0WObMj169GDmzJkAfPDBBzz44IN07dq16RxA3759GTlyJC+88AKdO3emtraW8vJyAD766CPKy8upra1N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lJk9ezbnnHMOAGeeeSYLFizA3dlrr70oLQ3P6Zs2bcLMAHjvvfd44oknmDx5MgCdOnViv/32S/BTBUoQIiJtsG7dOnr16tW0X1ZWxrp165otU1paSteuXamvrwfg2WefpaKigsMPP5ybbrqJ0tJSVq1aRffu3TnvvPM48sgjOf/88/nwww+T+1ARJQgRkTZw9+2ONb4JtKbM8OHDWbp0KYsXL2batGls2rSJhoYGnn/+eb7xjW/wwgsv0KVLl9i2jUJTghApUjvbcAowbdo0ysvLGTBgAPPnz286fsMNNzB48GAqKiq4/vrrk/gY7V5ZWRlr165t2q+rq6NHjx7NlmloaGDjxo0ccMAB25QZOHAgXbp0YcmSJZSVlVFWVsbw4cOBUC31/PPPF/iTbE8JQqQINTacPvrooyxbtox77rmHZcuWbVMms+H0O9/5DpdeeikAy5Yto7q6mqVLlzJv3jwuuOACtm7dypIlS7jllltYtGgRL730Eg8//DArV65M4+O1K8OGDWPlypWsXr2aLVu2UF1dTVVV1TZlqqqquOOOOwB44IEHOO644zAzVq9eTUNDAwCvvPIKK1asoHfv3hxyyCH06tWLFStWALBgwYJtGr2TogQRKcTT1qRJkzjooIMYPHhwEh9BpElbGk5nz57N+PHj2WOPPejTpw/l5eUsWrSI5cuXM2LEiKaG1WOPPXabbpm7qtLSUqZPn86JJ57IwIEDGTduHBUVFUydOpU5c+YAMHnyZOrr6ykvL+faa69t+o558sknGTJkCEOHDuX000/nxhtvpFu3bgD84he/4Ctf+QpHHHEEL774IldccUXyny3xK7ZDbemmlvm0tX79eo4//nj++te/UlJSwrnnnstFF13E2WefneKnk11RXMPps88+22yZzIbTdevWMWLEiG1+dt26dQwePJgrr7yS+vp6OnfuzNy5c6msrEzmA7VzY8eOZezYsdscu+qqq5q299xzT+6///7tfm7ixIlMnDgx9ncOHTqUmpqa/AaaI71BUJinLYBjjjlmu3pGkSS0peG0ueMDBw7k0ksv5YQTTmDMmDEMGTKkqYumFCf936UwT1siacql4bSsrGybhtMd/ezkyZOb+uZfccUVlJWVJfBp2qfelz2S6vXXXH1ywa+hNwgK87Qlkqa2NJxWVVVRXV3N5s2bWb16NStXruSoo44C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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "354\n",
      "1509\n",
      "0.2345924453280318\n",
      "COMPLETED\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "438\n",
      "1826\n",
      "0.23986856516976998\n",
      "COMPLETED\n"
     ]
    },
    {
     "data": {
      "image/png": "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AJdffjmLFi3C3encuTMlJeF7+o4dOzCzfV5/0aJFnHTSSZx44om5fzNplCBERNqgvr6eXr16Ne2XlpZSX1/fbJmSkhK6du1KQ0MDAEuWLKG8vJyTTz6Z++67rylhNKqqquLKK6/M8buIpwQhItIG7r7PsfQngf2VOeOMM1i5ciXLli1jypQp7Nixo6nMrl27qK6u5rOf/WyWo24dJQiRInWgDacAU6ZMoaysjIEDB7JgwYKm4/fccw9DhgyhvLw8kUbTQlRaWsqmTZua9uvq6ujRo0ezZXbv3s327ds55phj9iozaNAgjjjiCFasWNF0bN68eZx66qkcd9xxOXwHzVOCEClCjQ2n8+bNY9WqVcycOZNVq1btVSa14fRrX/saN910EwCrVq2iqqqKlStXMn/+fK699lr27NnDihUruP/++1m6dCmvvPIKzzzzDGvXrk3i7RWU4cOHs3btWtavX8+uXbuoqqqisrJyrzKVlZU8/PDDADz55JOcffbZmBnr169n9+7dALz22musWbOGPn36NP3czJkzE6teAiWIJrn4ttXSa4rkSlsaTufMmcO4ceM47LDD6Nu3L2VlZSxdupTVq1czYsSIpobVs846q6lb5sGspKSEqVOnct555zFo0CDGjh1LeXk5kydPprq6GoCJEyfS0NBAWVkZd911V9PnwfPPP8/QoUMZNmwYl1xyCffeey/dunUD4P3332fhwoVceumlyb23xK5cQNrSTS3129bmzZs555xz+OMf/wjQ4muK5Epcw+mSJUuaLZPacFpfX8+IESP2+tn6+nqGDBnCbbfdRkNDA506dWLu3LlUVFTk5w0VuDFjxjBmzJi9jt1+++1N24cffjhPPPHEPj83fvx4xo8fH/uanTt3bmrIToqeIMjNt63WvKZIrrSl4bS544MGDeKmm27i3HPP5fzzz2fo0KH79LiR4qJ/XXLzbQto8TVFciWThtPS0tK9Gk7397MTJ05k4sSJANx6662Ulpbm4d0Upj43P5vo9TfccWHOr6EnCHLzbas1rymSK21pOK2srKSqqoqdO3eyfv161q5dy+mnnw7A1q1bAdi4cSOzZs1KtAFVck9PEOTu21ZLrymSK6kNp3v27GHChAlNDacVFRVUVlYyceJExo8fT1lZGccccwxVVVUAlJeXM3bsWAYPHkxJSQnTpk2jQ4cOAFx2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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "509\n",
      "2129\n",
      "0.2390793799906059\n",
      "COMPLETED\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAETCAYAAAAs4pGmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJzt3XucVXW5x/HPIxOCgJhCKgwGNEDcBHMQrI6BlxTMMYsQK7yA0THJTmZ5qUMd7RzM47EbqFF6vKVjXoA5iqBHI9NUGJQKMGIOoAygIgp4AwSf88dvDe3ZrGFmM3uvNbP5vl8vXqzLb+/97CXuZ63f1dwdERGRbAekHYCIiLRMShAiIhJLCUJERGIpQYiISCwlCBERiaUEISIisZQgREQklhKEiIjEUoIQEZFYJWkH0BxdunTxnj17ph2GiEirsnjx4tfdvWtj5Vp1gujZsyfV1dVphyEi0qqY2UtNKacqJhERiaUEISIisZQgREQklhKEiIjEUoIQEZFYShAiIhJLCUJERGIpQYiISCwlCBERiaUEISIisZQgREQklhKEiIjEUoIQEZFYShAiIhJLCUJERGIpQYiISCwlCEnUvHnz6NevH2VlZVx77bV7nH/ppZc46aSTOProoxk5ciS1tbW7z7Vp04ahQ4cydOhQKioq9njtN7/5TTp27FjQ+EX2J616RTlpXXbt2sXFF1/MY489RmlpKcOGDaOiooIBAwbsLnPZZZdx7rnnct555/HEE09w5ZVXcueddwLQvn17lixZEvve1dXVbN68OZHvIbK/0BOEJGbhwoWUlZXRu3dv2rZty/jx45kzZ069MsuXL+ekk04CYNSoUXucj7Nr1y6++93vct111xUkbpH9lRKEJGbdunX06NFj935paSnr1q2rV2bIkCE88MADAMyaNYu33nqLTZs2AbBt2zbKy8sZMWIEs2fP3v2a6dOnU1FRwZFHHpnAtxDZf6iKSRLj7nscM7N6+9dffz1Tpkzhtttu44QTTqB79+6UlIR/pi+//DLdunVj1apVnHjiiQwePJj27dtz3333sWDBgiS+gsh+RQlCElNaWsratWt379fW1tKtW7d6Zbp168aDDz4IwNtvv80DDzxA586dd58D6N27NyNHjuSFF16gffv21NTUUFZWBsC7775LWVkZNTU1SXwl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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "594\n",
      "2420\n",
      "0.24545454545454545\n",
      "COMPLETED\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAETCAYAAAAs4pGmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJzt3XucVXW9//HXByakBEkEL8xgQAMcwPSQ4y0rIa9gYhcD7KQpFJ2UY3nJvBRwsHPA8tjlB1iUHu+Md5ijXDwH07BUGLqYjBKEKAMEOCqIGQh+fn981+CezZrLZvastWfzfj4ePth7re+s/Zkl7M9a3/X5fr/m7oiIiGTrkHYAIiJSmJQgREQklhKEiIjEUoIQEZFYShAiIhJLCUJERGIpQYiISCwlCBERiaUEISIisUrSDqA1evTo4X369Ek7DBGRdmX58uWvuXvP5tq16wTRp08fqqur0w5DRKRdMbNXWtJOXUwiIhJLCUJERGIpQYiISCwlCBERiaUEISIisZQgREQklhKEiIjEUoIQEZFYShAiIhJLCUJERGIpQYiISCwlCBERiaUEISIisZQgREQklhKEiIjEUoIQEZFYShCSqIULFzJw4EDKy8uZPn36XvtfeeUVTj31VI4++miGDRtGbW1tg/3btm2jtLSUiRMn7tl23333cfTRRzNkyBCuvvrqNv8dRPYXShCSmN27d3PppZeyYMECampqmDNnDjU1NQ3aXHXVVVx44YU8//zzTJo0iWuvvbbB/u9///uccsope97X1dXxne98h8WLF7NixQo2bdrE4sWLE/l9RIqdEoQkZunSpZSXl9OvXz86derE2LFjmTdvXoM2NTU1nHrqqQAMHz68wf7ly5ezadMmzjjjjD3b1qxZw4ABA+jZMyyve9ppp/HQQw8l8NuIFD8lCEnM+vXr6d279573ZWVlrF+/vkGbY445Zs8X/COPPMJbb71FXV0d7733HldeeSU/+tGPGrQvLy/npZdeYu3atezatYu5c+eybt26tv9lRPYDShCSGHffa5uZNXh/00038dRTTzF06FCeeuopSktLKSkpYdasWYwcObJBggE4+OCDueWWWxgzZgyf+tSn6NOnDyUlJW36e4jsLxL5l2RmtwGfBTa7+1Ex+w34KTAS+Dtwkbv/PonYJDllZWUNru5r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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "678\n",
      "2748\n",
      "0.24672489082969432\n",
      "COMPLETED\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAETCAYAAAAs4pGmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJzt3Xl8VPW9//HXRyLWFRdwgUABA1wgCtqw2EWhLizWWDeE644WvdrbWuutWHtpte3F9va6/cS6cmu1ElsF4SKGtlq0agVDRYUghYpKQBHQUi2yxc/vj+8JHYYTkiGTc5Lh/Xw8eHDmnG9mPnMg85nvbu6OiIhItj3SDkBERFomJQgREYmlBCEiIrGUIEREJJYShIiIxFKCEBGRWEoQIiISSwlCRERiKUGIiEisorQDaIr27dt7165d0w5DRKRVmT9//lp379BQuVadILp27UpVVVXaYYiItCpm9nZjyqmJSUREYilBiIhILCUIERGJpQQhIiKxlCBERCSWEoSIiMRSghARkVhKECIiEksJQkREYilBiIhILCUIERGJpQQhIiKxlCBERCSWEoSIiMRSghARkVhKECIiEksJQhJVWVlJr169KCkp4eabb97h+ttvv82JJ57I0UcfzZAhQ6ipqdl2rU2bNvTv35/+/ftTXl6+7fx5551Hr169KC0tZezYsWzZsiWR9yJS6JQgJDG1tbVcddVVPPXUU1RXVzNlyhSqq6u3K3Pttddy4YUX8tprrzFhwgSuv/76bdf23ntvFixYwIIFC5gxY8a28+eddx5vvPEGr7/+Op988gn3339/Yu9JpJApQUhi5s2bR0lJCd27d6dt27aMHj2a6dOnb1emurqaE088EYChQ4fucD3OyJEjMTPMjIEDB25X6xCRXacEIYlZuXIlnTt33va4uLiYlStXblemX79+PP744wBMmzaNjz76iHXr1gGwceNGysrKGDx4ME888cQOz79lyxYeeughhg8f3ozvQmT3oQQhiXH3Hc6Z2XaPf/azn/Hss89yzDHH8Oyzz9KpUyeKiooAeOedd6iqquKRRx7h6quv5q9//et2P3vllVdy/PHH86Uvfan53oTIbqQo7QBk91FcXMyKFSu2Pa6pqaFjx47blenYsSNTp04F4OOPP+bxxx+nXbt2264BdO/enSFDhvDK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2D+iTjGwKuPx/kApMMfM3gIGAzPiOqrd/V53L3P3sg4dOuxCKCIi0hiNSRD7uvu7AO6+Ami3C6/zMtDDzLqZWVtgNDCj7qK7r3f39u7e1d27Ai8B5e5etQuvJSIiedCYTuqiaJlvq+cxDS357e5bzezrhA2G2gCT3X2Rmd0EVLn7jJ39vIiIJK8xCeJ9th+ltC7rsQPdG3oSd59F2Nc689yEesoOaURcIiLSjBpMEFGTj4iI7GZymUktIiK7ESUIERGJpQQhIiKxlCBERCSWEoSIiMRSghARkVhKECIiEksJQkREYilBiIhILCUIERGJpQQhIiKxlCBERCSWEoSIiMRSghARkVhKECIiEksJQkREYilBiIhILCUIERGJpQQhIiKxlCBERCSWEoSIiMRSghARkVhKECIiEksJQkREYilBiIhILCUIERGJpQQhIiKxlCBERCRWYgnCzIab2RIzW2Zm42OuX2Nm1Wb2mpk9bWafTSo2ERHZUSIJwszaAJOAEUAfYIyZ9ckq9gpQ5u5HA48BP00iNhERiZdUDWIgsMzd33T3zUAFcHpmAXf/g7tviB6+BBQnFJuIiMRIKkF0AlZkPK6JztXnUuCpZo1IRER2qiih17GYcx5b0Ox8oAw4oZ7r44BxAF26dMlXfCIikiWpGkQN0DnjcTGwKruQmZ0E3ACUu/umuCdy93vdvczdyzp06NAswYqISHIJ4mWgh5l1M7O2wGhgRmYBMzsGuIeQHN5PKC4REalHIgnC3bcCXwdmA4uBX7v7IjO7yczKo2L/DewH/MbMFpjZjHqeTkREEpBUHwTuPguYlXVuQsbxSUnFIiIiDdNMahERiaUEISIisZQgREQklhKEiIjEUoIQEZFYShAiIhJLCUJERGIpQYiISCwlCBERiaUEISIisZQgREQklhKEiIjEUoIQEZFYShAiIhJLCUJERGIpQYiINFFlZSW9evWipKSEm2++eYfrmzZt4txzz6WkpIRBgwbx1ltvATBv3jz69+9P//796devH9OmTdv2M7fffjulpaX07duX2267Lam3sh0lCBGRJqitreWqq67iqaeeorq6milTplBdXb1dmQceeICDDjqIZcuW8a1vfYvrrrsOgNLSUqqqqliwYAGVlZVcfvnlbN26lYULF3Lfffcxb948Xn31VWbOnMnSpUsTf29KECIiTTBv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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "745\n",
      "3067\n",
      "0.2429083795239648\n"
     ]
    }
   ],
   "source": [
    "# create Quantum Register called \"qr\" with 4 qubits\n",
    "qr = QuantumRegister(4, name=\"qr\")\n",
    "# create Quantum Register called \"cr\" with 4 qubits\n",
    "cr = ClassicalRegister(4, name=\"cr\")\n",
    "# Creating Quantum Circuit called \"qc\" involving your Quantum Register \"qr\"\n",
    "# and your Classical Register \"cr\"\n",
    "qc = QuantumCircuit(qr, cr, name=\"solve_linear_sys\")        \n",
    "    \n",
    "# Initialize times that we get the result vector \n",
    "n0 = 0\n",
    "n1 = 0\n",
    "    \n",
    "for i in range(10):\n",
    "    #Set the input|b> state\"\n",
    "    qc.x(qr[2])\n",
    "        \n",
    "    #Set the phase estimation circuit\n",
    "    qc.h(qr[0])\n",
    "    qc.h(qr[1]) \n",
    "    qc.u1(pi, qr[0])\n",
    "    qc.u1(pi/2, qr[1])\n",
    "    qc.cx(qr[1], qr[2])\n",
    "    \n",
    "    #The quantum inverse  Fourier transform \n",
    "    qc.h(qr[0])\n",
    "    qc.cu1(-pi/2, qr[0], qr[1])\n",
    "    qc.h(qr[1])\n",
    "    \n",
    "    #R（lamda^-1） Rotation\n",
    "    qc.x(qr[1])\n",
    "    qc.cu3(pi/16, 0, 0, qr[0], qr[3])\n",
    "    qc.cu3(pi/8, 0, 0, qr[1], qr[3])   \n",
    "    \n",
    "    #Uncomputation\n",
    "    qc.x(qr[1])\n",
    "    qc.h(qr[1])\n",
    "    qc.cu1(pi/2, qr[0], qr[1])\n",
    "    qc.h(qr[0])\n",
    "    \n",
    "    qc.cx(qr[1], qr[2])\n",
    "    qc.u1(-pi/2, qr[1])\n",
    "    qc.u1(-pi, qr[0])\n",
    "    \n",
    "    qc.h(qr[1]) \n",
    "    qc.h(qr[0])\n",
    "         \n",
    "    # To measure the whole quantum register\n",
    "    qc.measure(qr[0], cr[0])\n",
    "    qc.measure(qr[1], cr[1])\n",
    "    qc.measure(qr[2], cr[2])\n",
    "    qc.measure(qr[3], cr[3])\n",
    "\n",
    "    job = execute(qc, backend=backend, shots=8192,)\n",
    "    result = job.result()\n",
    "        \n",
    "    # Get the sum og all results\n",
    "    n0 = n0 + result.get_data(\"solve_linear_sys\")['counts']['1000']\n",
    "    n1 = n1 + result.get_data(\"solve_linear_sys\")['counts']['1100']\n",
    "    \n",
    "    # print the result\n",
    "    print(result)\n",
    "#     print(result.get_data(qc))\n",
    "    plot_histogram(result.get_counts())\n",
    "        \n",
    "                \n",
    "#     Reset the circuit\n",
    "    qc.reset(qr)\n",
    "    \n",
    "    # calculate the scale of the elements in result vectot and print it.\n",
    "    p = n0/n1\n",
    "    print(n0)\n",
    "    print(n1)\n",
    "    print(p)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Result analysis\n",
    "According to the result, we can obtain the scale of two elements in $\\vec x$. Via features of linear system, we can get\n",
    "$A\\vec x=A\\begin{pmatrix}a_1 \\\\ ka_2\\end{pmatrix}=\\vec b=\\begin{pmatrix}0 \\\\ 1\\end{pmatrix}$. So we can get the answer, $\\vec x=\\begin{pmatrix}0.32665 \\\\0.67335\\end{pmatrix} $.<br \\> For more examples, we test different value of $\\vec b$ and get the answer about $\\vec x $ as following table: <br \\>\n",
    "<img src=\"../images/hhl_3.png\" width=\"500 px\">\n",
    "And the statistic result is showed as following:\n",
    "<img src=\"../images/hhl_4.png\" width=\"500 px\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Reference\n",
    "<cite>[1]Quantum Algorithm for Linear Systems of Equations(see [Aram W. Harrow, Avinatan Hassidim, and Seth Lloyd\n",
    "Phys. Rev. Lett. 103, 150502](https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.103.150502))</cite><a id='cite_1'></a><br \\>\n",
    "<cite>[2]Quantum circuit design for solving linear systems of equations(see [Yudong Cao,Anmer Daskin,Steven Frankel & Sabre Kais](https://www.tandfonline.com/doi/abs/10.1080/00268976.2012.668289))</cite><a id='cite_2'></a><br \\>\n",
    "<cite>[3]Experimental realization of quantum algorithm for solving linear systems of equations(see [Jian Pan, Yudong Cao, Xiwei Yao, Zhaokai Li, Chenyong Ju, Hongwei Chen, Xinhua Peng, Sabre Kais, and Jiangfeng Du Phys. Rev. A 89, 022313](https://journals.aps.org/pra/abstract/10.1103/PhysRevA.89.022313))</cite><a id='cite_3'></a>"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
